home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 18 / CU Amiga Magazine's Super CD-ROM 18 (1997)(EMAP Images)(GB)[!][issue 1998-01].iso / CUCD / Programming / AmigaE / Src / OOmodules / sort / numbers / float.e < prev    next >
Encoding:
Text File  |  1995-05-20  |  1.7 KB  |  104 lines

  1. /*
  2.  
  3. First draft of a Float object. It's very rudimentary, just to get the
  4. Coordinate going...
  5.  
  6. Gregor Goldbach
  7. */
  8.  
  9. OPT MODULE
  10. OPT EXPORT
  11.  
  12. MODULE 'oomodules/sort/numbers'
  13.  
  14. OBJECT float OF number
  15.   value
  16. ENDOBJECT
  17.  
  18. PROC name() OF float IS 'Float'
  19.  
  20. PROC set(value) OF float
  21.   self.value := value
  22. ENDPROC
  23.  
  24. PROC get() OF float IS self.value
  25.  
  26. PROC cmp(what:PTR TO float) OF float
  27.   IF self.value < what.value THEN RETURN -1
  28.   RETURN IF self.value > what.value THEN 1 ELSE 0
  29. ENDPROC
  30.  
  31. PROC write() OF float
  32. DEF out
  33.  
  34.   out := String(42)
  35.   IF out
  36.     RealF(out,self.value,8)
  37.     RETURN out
  38.   ELSE
  39.     RETURN NIL
  40.   ENDIF
  41.  
  42. ENDPROC
  43.  
  44. PROC add(in:PTR TO float) OF float
  45. DEF value
  46.  
  47.   value := !self.get() + in.get()
  48.   self.set( value)
  49. ENDPROC
  50.  
  51. PROC substract(in:PTR TO float) OF float
  52.   self.set( !self.get() - in.get() )
  53. ENDPROC
  54.  
  55. PROC multiply(in:PTR TO float) OF float
  56.   self.set( !self.get() * in.get() )
  57. ENDPROC
  58.  
  59. PROC divide(in:PTR TO float) OF float
  60.   self.set( !self.get() / in.get() )
  61. ENDPROC
  62.  
  63.  
  64.  
  65. ->PROC power(in:PTR TO float) OF float IS EMPTY
  66.  
  67. ->PROC max(in:PTR TO float) OF float IS EMPTY
  68.  
  69. PROC abs() OF float
  70. DEF value
  71.   IF !self.value < 0
  72.     value := self.get()
  73.     RETURN ! value * (-1)
  74.   ELSE
  75.     RETURN self.get()
  76.   ENDIF
  77. ENDPROC
  78.  
  79. PROC neg() OF float
  80.   self.set( !0-self.get())
  81. ENDPROC
  82.  
  83. ->PROC min(in:PTR TO float) OF float IS EMPTY
  84.  
  85. ->PROC sign() OF float IS EMPTY
  86.  
  87. ->PROC bounds(min:PTR TO float,max:PTR TO float) OF float IS EMPTY
  88.  
  89. ->PROC rnd(min=0:PTR TO float,max=0:PTR TO float) IS EMPTY
  90.  
  91. PROC copy(to:PTR TO float) OF float
  92.   to.set( self.get() )
  93. ENDPROC
  94.  
  95. PROC flt2int() OF float
  96. DEF value:PTR TO float,dummy1,dummy2
  97.  
  98.   NEW value.new()
  99.  
  100.   value.set( self.get() + 0.5)
  101.   value.set(Ffloor(value.get()))
  102.   RETURN !value.get()!
  103. ENDPROC
  104.